home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / src / GLperf3.12-src.lha / GLperf / FuncEnum.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-09-19  |  9.6 KB  |  338 lines

  1. /*
  2.  *   (C) COPYRIGHT International Business Machines Corp. 1993
  3.  *   All Rights Reserved
  4.  *   Licensed Materials - Property of IBM
  5.  *   US Government Users Restricted Rights - Use, duplication or
  6.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7.  
  8. //
  9. // Permission to use, copy, modify, and distribute this software and its
  10. // documentation for any purpose and without fee is hereby granted, provided
  11. // that the above copyright notice appear in all copies and that both that
  12. // copyright notice and this permission notice appear in supporting
  13. // documentation, and that the name of I.B.M. not be used in advertising
  14. // or publicity pertaining to distribution of the software without specific,
  15. // written prior permission. I.B.M. makes no representations about the
  16. // suitability of this software for any purpose.  It is provided "as is"
  17. // without express or implied warranty.
  18. //
  19. // I.B.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  20. // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL I.B.M.
  21. // BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  22. // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  23. // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  24. // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  25. //
  26. // Author:  John Spitzer, IBM AWS Graphics Systems (Austin)
  27. //
  28. */
  29. #ifndef _FuncEnum_h
  30. #define _FuncEnum_h
  31.  
  32. #undef    LITTLE_ENDIAN
  33. #if defined(DEC) || defined( __IBMC__) || defined(WIN32)
  34. #define LITTLE_ENDIAN
  35. #endif
  36.  
  37. typedef union _TransformFunc {
  38.   struct _transformBits {
  39. #ifdef LITTLE_ENDIAN
  40.     unsigned int unrollAmount  : 3;
  41.     unsigned int functionPtrs  : 1;
  42.     unsigned int pointDraw     : 1;
  43.     unsigned int pushPop       : 1;
  44.     unsigned int transform     : 3;
  45.     unsigned int unused        :23;
  46. #else
  47.     unsigned int unused        :23;
  48.     unsigned int transform     : 3;
  49.     unsigned int pushPop       : 1;
  50.     unsigned int pointDraw     : 1;
  51.     unsigned int functionPtrs  : 1;
  52.     unsigned int unrollAmount  : 3;
  53. #endif
  54.   } bits;
  55.   unsigned int word;
  56. } TransformFunc;
  57.  
  58. typedef union _ClearFunc {
  59.   struct _clearBits {
  60. #ifdef LITTLE_ENDIAN
  61.     unsigned int unrollAmount  : 3;
  62.     unsigned int functionPtrs  : 1;
  63.     unsigned int pointDraw     : 1;
  64.     unsigned int unused        :27;
  65. #else
  66.     unsigned int unused        :27;
  67.     unsigned int pointDraw     : 1;
  68.     unsigned int functionPtrs  : 1;
  69.     unsigned int unrollAmount  : 3;
  70. #endif
  71.   } bits;
  72.   unsigned int word;
  73. } ClearFunc;
  74.  
  75. #if ((defined(GL_EXT_texture3D) || defined(GL_SGIS_texture4D)) && defined (FULL_TEXTURE_PATHS))
  76.     #define TEXTURE_DIM_BITS 2
  77.     #define REMAINING_BITS   19
  78. #else
  79.     #define TEXTURE_DIM_BITS 1
  80.     #define REMAINING_BITS   20
  81. #endif
  82.  
  83. typedef union _VertexFunc {
  84.   struct _vertexBits {
  85. #ifdef LITTLE_ENDIAN
  86.     unsigned int unrollAmount  : 3;
  87.     unsigned int colorDim      : 1;
  88.     unsigned int textureDim    : TEXTURE_DIM_BITS;
  89.     unsigned int textureData   : 1;
  90.     unsigned int vertexDim     : 1;
  91.     unsigned int functionPtrs  : 1;
  92.     unsigned int vertsPerFacet : 4;
  93.     unsigned int unused        : REMAINING_BITS;
  94. #else
  95.     unsigned int unused        : REMAINING_BITS;
  96.     unsigned int vertsPerFacet : 4;
  97.     unsigned int functionPtrs  : 1;
  98.     unsigned int vertexDim     : 1;
  99.     unsigned int textureData   : 1;
  100.     unsigned int textureDim    : TEXTURE_DIM_BITS;
  101.     unsigned int colorDim      : 1;
  102.     unsigned int unrollAmount  : 3;
  103. #endif
  104.   } bits;
  105.   unsigned int word;
  106. } VertexFunc;
  107.  
  108. typedef union _VertexFile {
  109.   struct _vertexFileBits {
  110. #ifdef LITTLE_ENDIAN
  111.     unsigned int visual        : 1;
  112.     unsigned int colorData     : 2;
  113.     unsigned int normalData    : 2;
  114.     unsigned int unused        : 27;
  115. #else
  116.     unsigned int unused        : 27;
  117.     unsigned int normalData    : 2;
  118.     unsigned int colorData     : 2;
  119.     unsigned int visual        : 1;
  120. #endif
  121.   } bits;
  122.   unsigned int word;
  123. } VertexFile;
  124.  
  125. typedef union _VertexArrayFunc {
  126.   struct _vertexArrayBits {
  127. #ifdef LITTLE_ENDIAN
  128.     unsigned int colorData     : 1;
  129.     unsigned int indexData     : 1;
  130.     unsigned int normalData    : 1;
  131.     unsigned int textureData   : 1;
  132.     unsigned int functionPtrs  : 1;
  133.     unsigned int unused        : 27;
  134. #else
  135.     unsigned int unused        : 27;
  136.     unsigned int functionPtrs  : 1;
  137.     unsigned int textureData   : 1;
  138.     unsigned int normalData    : 1;
  139.     unsigned int indexData     : 1;
  140.     unsigned int colorData     : 1;
  141. #endif
  142.   } bits;
  143.   unsigned int word;
  144. } VertexArrayFunc;
  145.  
  146. typedef union _VertexArray11Func {
  147.   struct _vertexArray11Bits {
  148. #ifdef LITTLE_ENDIAN
  149.     unsigned int colorData     : 1;
  150.     unsigned int indexData     : 1;
  151.     unsigned int normalData    : 1;
  152.     unsigned int textureData   : 1;
  153.     unsigned int functionPtrs  : 1;
  154.     unsigned int drawElements  : 1;
  155.     unsigned int interleaved   : 1;
  156.     unsigned int lockArrays    : 1;
  157.     unsigned int unused        : 24;
  158. #else
  159.     unsigned int unused        : 24;
  160.     unsigned int lockArrays    : 1;
  161.     unsigned int interleaved   : 1;
  162.     unsigned int drawElements  : 1;
  163.     unsigned int functionPtrs  : 1;
  164.     unsigned int textureData   : 1;
  165.     unsigned int normalData    : 1;
  166.     unsigned int indexData     : 1;
  167.     unsigned int colorData     : 1;
  168. #endif
  169.   } bits;
  170.   unsigned int word;
  171. } VertexArray11Func;
  172.  
  173. typedef union _DrawPixelsFunc {
  174.   struct _drawPixelsBits {
  175. #ifdef LITTLE_ENDIAN
  176.     unsigned int rasterPosDim  : 1;
  177.     unsigned int functionPtrs  : 1;
  178.     unsigned int subimage      : 1;
  179.     unsigned int multiimage    : 1;
  180.     unsigned int unused        :28;
  181. #else
  182.     unsigned int unused        :28;
  183.     unsigned int multiimage    : 1;
  184.     unsigned int subimage      : 1;
  185.     unsigned int functionPtrs  : 1;
  186.     unsigned int rasterPosDim  : 1;
  187. #endif
  188.   } bits;
  189.   unsigned int word;
  190. } DrawPixelsFunc;
  191.  
  192. typedef union _ReadPixelsFunc {
  193.   struct _readPixelsBits {
  194. #ifdef LITTLE_ENDIAN
  195.     unsigned int functionPtrs  : 1;
  196.     unsigned int subimage      : 1;
  197.     unsigned int multiimage    : 1;
  198.     unsigned int unused        :29;
  199. #else
  200.     unsigned int unused        :29;
  201.     unsigned int multiimage    : 1;
  202.     unsigned int subimage      : 1;
  203.     unsigned int functionPtrs  : 1;
  204. #endif
  205.   } bits;
  206.   unsigned int word;
  207. } ReadPixelsFunc;
  208.  
  209. typedef union _CopyPixelsFunc {
  210.   struct _copyPixelsBits {
  211. #ifdef LITTLE_ENDIAN
  212.     unsigned int rasterPosDim  : 1;
  213.     unsigned int functionPtrs  : 1;
  214.     unsigned int unused        :30;
  215. #else
  216.     unsigned int unused        :30;
  217.     unsigned int functionPtrs  : 1;
  218.     unsigned int rasterPosDim  : 1;
  219. #endif
  220.   } bits;
  221.   unsigned int word;
  222. } CopyPixelsFunc;
  223.  
  224. typedef union _BitmapFunc {
  225.   struct _bitmapBits {
  226. #ifdef LITTLE_ENDIAN
  227.     unsigned int rasterPosDim  : 1;
  228.     unsigned int functionPtrs  : 1;
  229.     unsigned int subimage      : 1;
  230.     unsigned int multiimage    : 1;
  231.     unsigned int colorDim      : 1;
  232.     unsigned int colorData     : 1;
  233.     unsigned int visual        : 1;
  234.     unsigned int unused        :25;
  235. #else
  236.     unsigned int unused        :25;
  237.     unsigned int visual        : 1;
  238.     unsigned int colorData     : 1;
  239.     unsigned int colorDim      : 1;
  240.     unsigned int multiimage    : 1;
  241.     unsigned int subimage      : 1;
  242.     unsigned int functionPtrs  : 1;
  243.     unsigned int rasterPosDim  : 1;
  244. #endif
  245.   } bits;
  246.   unsigned int word;
  247. } BitmapFunc;
  248.  
  249. typedef union _TextFunc {
  250.   struct _textBits {
  251. #ifdef LITTLE_ENDIAN
  252.     unsigned int rasterPosDim  : 1;
  253.     unsigned int functionPtrs  : 1;
  254.     unsigned int multiimage    : 1;
  255.     unsigned int colorDim      : 1;
  256.     unsigned int colorData     : 1;
  257.     unsigned int visual        : 1;
  258.     unsigned int unused        :26;
  259. #else
  260.     unsigned int unused        :26;
  261.     unsigned int visual        : 1;
  262.     unsigned int colorData     : 1;
  263.     unsigned int colorDim      : 1;
  264.     unsigned int multiimage    : 1;
  265.     unsigned int functionPtrs  : 1;
  266.     unsigned int rasterPosDim  : 1;
  267. #endif
  268.   } bits;
  269.   unsigned int word;
  270. } TextFunc;
  271.  
  272. typedef union _TexImageBindFunc {
  273.   struct _texImageBindBits {
  274. #ifdef LITTLE_ENDIAN
  275.     unsigned int multiimage    : 1;
  276.     unsigned int objDraw       : 2;
  277.     unsigned int functionPtrs  : 1;
  278.     unsigned int texSrc        : 1;
  279.     unsigned int unused        :27;
  280. #else
  281.     unsigned int unused        :27;
  282.     unsigned int texSrc        : 1;
  283.     unsigned int functionPtrs  : 1;
  284.     unsigned int objDraw       : 2;
  285.     unsigned int multiimage    : 1;
  286. #endif
  287.   } bits;
  288.   unsigned int word;
  289. } TexImageBindFunc;
  290.  
  291. typedef union _TexImageCopyFunc {
  292.   struct _texImageCopyBits {
  293. #ifdef LITTLE_ENDIAN
  294.     unsigned int subtexture    : 1;
  295.     unsigned int objDraw       : 2;
  296.     unsigned int functionPtrs  : 1;
  297.     unsigned int texDim        : 2;
  298.     unsigned int unused        :26;
  299. #else
  300.     unsigned int unused        :26;
  301.     unsigned int texDim        : 2;
  302.     unsigned int functionPtrs  : 1;
  303.     unsigned int objDraw       : 2;
  304.     unsigned int subtexture    : 1;
  305. #endif
  306.   } bits;
  307.   unsigned int word;
  308. } TexImageCopyFunc;
  309.  
  310. typedef union _TexImageLoadFunc {
  311.   struct _texImageLoadBits {
  312. #ifdef LITTLE_ENDIAN
  313.     unsigned int subtexture    : 1;
  314.     unsigned int subimage      : 1;
  315.     unsigned int multilevel    : 1;
  316.     unsigned int multiimage    : 1;
  317.     unsigned int genMipmap     : 1;
  318.     unsigned int objDraw       : 2;
  319.     unsigned int functionPtrs  : 1;
  320.     unsigned int texDim        : 2;
  321.     unsigned int unused        :22;
  322. #else
  323.     unsigned int unused        :22;
  324.     unsigned int texDim        : 2;
  325.     unsigned int functionPtrs  : 1;
  326.     unsigned int objDraw       : 2;
  327.     unsigned int genMipmap     : 1;
  328.     unsigned int multiimage    : 1;
  329.     unsigned int multilevel    : 1;
  330.     unsigned int subimage      : 1;
  331.     unsigned int subtexture    : 1;
  332. #endif
  333.   } bits;
  334.   unsigned int word;
  335. } TexImageLoadFunc;
  336.  
  337. #endif /* file not already included */
  338.